home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / FileTransfers.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  12.5 KB  |  367 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        FileTransfers.p
  3.  
  4.      Contains:    CommToolbox File Transfer Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1988-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT FileTransfers;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __FILETRANSFERS__}
  28. {$SETC __FILETRANSFERS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC FileTransfersIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __CONDITIONALMACROS__}
  35. {$I ConditionalMacros.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __STANDARDFILE__}
  38. {$I StandardFile.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __CTBUTILITIES__}
  41. {$I CTBUtilities.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __CONNECTIONS__}
  44. {$I Connections.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __FILES__}
  47. {$I Files.p}
  48. {$ENDC}
  49. {$IFC UNDEFINED __TERMINALS__}
  50. {$I Terminals.p}
  51. {$ENDC}
  52.  
  53.  
  54. {$PUSH}
  55. {$ALIGN MAC68K}
  56. {$LibExport+}
  57.  
  58.  
  59. CONST
  60.     curFTVersion                = 2;                            {  current file transfer manager version }
  61.  
  62.                                                                 {  FTErr     }
  63.     ftGenericError                = -1;
  64.     ftNoErr                        = 0;
  65.     ftRejected                    = 1;
  66.     ftFailed                    = 2;
  67.     ftTimeOut                    = 3;
  68.     ftTooManyRetry                = 4;
  69.     ftNotEnoughDSpace            = 5;
  70.     ftRemoteCancel                = 6;
  71.     ftWrongFormat                = 7;
  72.     ftNoTools                    = 8;
  73.     ftUserCancel                = 9;
  74.     ftNotSupported                = 10;
  75.  
  76.  
  77. TYPE
  78.     FTErr                                = OSErr;
  79.  
  80. CONST
  81.     ftIsFTMode                    = $01;
  82.     ftNoMenus                    = $02;
  83.     ftQuiet                        = $04;
  84.     ftConfigChanged                = $10;
  85.     ftSucc                        = $80;
  86.  
  87.  
  88. TYPE
  89.     FTFlags                                = UInt32;
  90.  
  91. CONST
  92.     ftSameCircuit                = $01;
  93.     ftSendDisable                = $02;
  94.     ftReceiveDisable            = $04;
  95.     ftTextOnly                    = $08;
  96.     ftNoStdFile                    = $10;
  97.     ftMultipleFileSend            = $20;
  98.  
  99.  
  100. TYPE
  101.     FTAttributes                        = UInt16;
  102.  
  103. CONST
  104.     ftReceiving                    = 0;
  105.     ftTransmitting                = 1;
  106.     ftFullDuplex                = 2;                            {  (16) added ftFullDuplex bit. }
  107.  
  108.  
  109. TYPE
  110.     FTDirection                            = UInt16;
  111. {$IFC TYPED_FUNCTION_POINTERS}
  112.     FileTransferDefProcPtr = FUNCTION(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT;
  113. {$ELSEC}
  114.     FileTransferDefProcPtr = ProcPtr;
  115. {$ENDC}
  116.  
  117. {    application routines type definitions }
  118.     FTRecordPtr = ^FTRecord;
  119.     FTPtr                                = ^FTRecord;
  120.     FTHandle                            = ^FTPtr;
  121. {$IFC TYPED_FUNCTION_POINTERS}
  122.     FileTransferReadProcPtr = FUNCTION(VAR count: UInt32; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER): OSErr;
  123. {$ELSEC}
  124.     FileTransferReadProcPtr = ProcPtr;
  125. {$ENDC}
  126.  
  127. {$IFC TYPED_FUNCTION_POINTERS}
  128.     FileTransferWriteProcPtr = FUNCTION(VAR count: UInt32; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER): OSErr;
  129. {$ELSEC}
  130.     FileTransferWriteProcPtr = ProcPtr;
  131. {$ENDC}
  132.  
  133. {$IFC TYPED_FUNCTION_POINTERS}
  134.     FileTransferSendProcPtr = FUNCTION(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; flag: CMFlags): Size;
  135. {$ELSEC}
  136.     FileTransferSendProcPtr = ProcPtr;
  137. {$ENDC}
  138.  
  139. {$IFC TYPED_FUNCTION_POINTERS}
  140.     FileTransferReceiveProcPtr = FUNCTION(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; VAR flag: CMFlags): Size;
  141. {$ELSEC}
  142.     FileTransferReceiveProcPtr = ProcPtr;
  143. {$ENDC}
  144.  
  145. {$IFC TYPED_FUNCTION_POINTERS}
  146.     FileTransferEnvironsProcPtr = FUNCTION(refCon: LONGINT; VAR theEnvirons: ConnEnvironRec): OSErr;
  147. {$ELSEC}
  148.     FileTransferEnvironsProcPtr = ProcPtr;
  149. {$ENDC}
  150.  
  151. {$IFC TYPED_FUNCTION_POINTERS}
  152.     FileTransferNotificationProcPtr = PROCEDURE(hFT: FTHandle; {CONST}VAR pFSSpec: FSSpec);
  153. {$ELSEC}
  154.     FileTransferNotificationProcPtr = ProcPtr;
  155. {$ENDC}
  156.  
  157. {$IFC TYPED_FUNCTION_POINTERS}
  158.     FileTransferChooseIdleProcPtr = PROCEDURE;
  159. {$ELSEC}
  160.     FileTransferChooseIdleProcPtr = ProcPtr;
  161. {$ENDC}
  162.  
  163.     FileTransferDefUPP = UniversalProcPtr;
  164.     FileTransferReadUPP = UniversalProcPtr;
  165.     FileTransferWriteUPP = UniversalProcPtr;
  166.     FileTransferSendUPP = UniversalProcPtr;
  167.     FileTransferReceiveUPP = UniversalProcPtr;
  168.     FileTransferEnvironsUPP = UniversalProcPtr;
  169.     FileTransferNotificationUPP = UniversalProcPtr;
  170.     FileTransferChooseIdleUPP = UniversalProcPtr;
  171.     FTRecord = RECORD
  172.         procID:                    INTEGER;
  173.         flags:                    FTFlags;
  174.         errCode:                FTErr;
  175.         refCon:                    LONGINT;
  176.         userData:                LONGINT;
  177.         defProc:                FileTransferDefUPP;
  178.         config:                    Ptr;
  179.         oldConfig:                Ptr;
  180.         environsProc:            FileTransferEnvironsUPP;
  181.         reserved1:                LONGINT;
  182.         reserved2:                LONGINT;
  183.         ftPrivate:                Ptr;
  184.         sendProc:                FileTransferSendUPP;
  185.         recvProc:                FileTransferReceiveUPP;
  186.         writeProc:                FileTransferWriteUPP;
  187.         readProc:                FileTransferReadUPP;
  188.         owner:                    WindowPtr;
  189.         direction:                FTDirection;
  190.         theReply:                SFReply;
  191.         writePtr:                LONGINT;
  192.         readPtr:                LONGINT;
  193.         theBuf:                    Ptr;
  194.         bufSize:                LONGINT;
  195.         autoRec:                Str255;
  196.         attributes:                FTAttributes;
  197.     END;
  198.  
  199.     FTCompletionKind                    = UInt16;
  200.  
  201. CONST
  202.                                                                 {  FTReadProc messages  }
  203.     ftReadOpenFile                = 0;                            {  count = forkFlags, buffer = pblock from PBGetFInfo  }
  204.     ftReadDataFork                = 1;
  205.     ftReadRsrcFork                = 2;
  206.     ftReadAbort                    = 3;
  207.     ftReadComplete                = 4;
  208.     ftReadSetFPos                = 6;                            {  count = forkFlags, buffer = pBlock same as PBSetFPos  }
  209.     ftReadGetFPos                = 7;                            {  count = forkFlags, buffer = pBlock same as PBGetFPos  }
  210.  
  211.                                                                 {  FTWriteProc messages  }
  212.     ftWriteOpenFile                = 0;                            {  count = forkFlags, buffer = pblock from PBGetFInfo  }
  213.     ftWriteDataFork                = 1;
  214.     ftWriteRsrcFork                = 2;
  215.     ftWriteAbort                = 3;
  216.     ftWriteComplete                = 4;
  217.     ftWriteFileInfo                = 5;
  218.     ftWriteSetFPos                = 6;                            {  count = forkFlags, buffer = pBlock same as PBSetFPos  }
  219.     ftWriteGetFPos                = 7;                            {  count = forkFlags, buffer = pBlock same as PBGetFPos  }
  220.  
  221.                                                                 {     fork flags  }
  222.     ftOpenDataFork                = 1;
  223.     ftOpenRsrcFork                = 2;
  224.  
  225.     uppFileTransferDefProcInfo = $0000FEF0;
  226.     uppFileTransferReadProcInfo = $00002FE0;
  227.     uppFileTransferWriteProcInfo = $00002FE0;
  228.     uppFileTransferSendProcInfo = $0000AFF0;
  229.     uppFileTransferReceiveProcInfo = $0000EFF0;
  230.     uppFileTransferEnvironsProcInfo = $000003E0;
  231.     uppFileTransferNotificationProcInfo = $000003C0;
  232.     uppFileTransferChooseIdleProcInfo = $00000000;
  233.  
  234. FUNCTION NewFileTransferDefProc(userRoutine: FileTransferDefProcPtr): FileTransferDefUPP;
  235.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  236.     INLINE $2E9F;
  237.     {$ENDC}
  238.  
  239. FUNCTION NewFileTransferReadProc(userRoutine: FileTransferReadProcPtr): FileTransferReadUPP;
  240.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  241.     INLINE $2E9F;
  242.     {$ENDC}
  243.  
  244. FUNCTION NewFileTransferWriteProc(userRoutine: FileTransferWriteProcPtr): FileTransferWriteUPP;
  245.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  246.     INLINE $2E9F;
  247.     {$ENDC}
  248.  
  249. FUNCTION NewFileTransferSendProc(userRoutine: FileTransferSendProcPtr): FileTransferSendUPP;
  250.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  251.     INLINE $2E9F;
  252.     {$ENDC}
  253.  
  254. FUNCTION NewFileTransferReceiveProc(userRoutine: FileTransferReceiveProcPtr): FileTransferReceiveUPP;
  255.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  256.     INLINE $2E9F;
  257.     {$ENDC}
  258.  
  259. FUNCTION NewFileTransferEnvironsProc(userRoutine: FileTransferEnvironsProcPtr): FileTransferEnvironsUPP;
  260.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  261.     INLINE $2E9F;
  262.     {$ENDC}
  263.  
  264. FUNCTION NewFileTransferNotificationProc(userRoutine: FileTransferNotificationProcPtr): FileTransferNotificationUPP;
  265.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  266.     INLINE $2E9F;
  267.     {$ENDC}
  268.  
  269. FUNCTION NewFileTransferChooseIdleProc(userRoutine: FileTransferChooseIdleProcPtr): FileTransferChooseIdleUPP;
  270.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  271.     INLINE $2E9F;
  272.     {$ENDC}
  273.  
  274. FUNCTION CallFileTransferDefProc(hTerm: TermHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: FileTransferDefUPP): LONGINT;
  275.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  276.     INLINE $205F, $4E90;
  277.     {$ENDC}
  278.  
  279. FUNCTION CallFileTransferReadProc(VAR count: UInt32; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER; userRoutine: FileTransferReadUPP): OSErr;
  280.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  281.     INLINE $205F, $4E90;
  282.     {$ENDC}
  283.  
  284. FUNCTION CallFileTransferWriteProc(VAR count: UInt32; pData: Ptr; refCon: LONGINT; fileMsg: INTEGER; userRoutine: FileTransferWriteUPP): OSErr;
  285.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  286.     INLINE $205F, $4E90;
  287.     {$ENDC}
  288.  
  289. FUNCTION CallFileTransferSendProc(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; flag: CMFlags; userRoutine: FileTransferSendUPP): Size;
  290.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  291.     INLINE $205F, $4E90;
  292.     {$ENDC}
  293.  
  294. FUNCTION CallFileTransferReceiveProc(thePtr: Ptr; theSize: LONGINT; refCon: LONGINT; channel: CMChannel; VAR flag: CMFlags; userRoutine: FileTransferReceiveUPP): Size;
  295.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  296.     INLINE $205F, $4E90;
  297.     {$ENDC}
  298.  
  299. FUNCTION CallFileTransferEnvironsProc(refCon: LONGINT; VAR theEnvirons: ConnEnvironRec; userRoutine: FileTransferEnvironsUPP): OSErr;
  300.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  301.     INLINE $205F, $4E90;
  302.     {$ENDC}
  303.  
  304. PROCEDURE CallFileTransferNotificationProc(hFT: FTHandle; {CONST}VAR pFSSpec: FSSpec; userRoutine: FileTransferNotificationUPP);
  305.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  306.     INLINE $205F, $4E90;
  307.     {$ENDC}
  308.  
  309. PROCEDURE CallFileTransferChooseIdleProc(userRoutine: FileTransferChooseIdleUPP);
  310.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  311.     INLINE $205F, $4E90;
  312.     {$ENDC}
  313.  
  314. FUNCTION InitFT: FTErr;
  315. FUNCTION FTGetVersion(hFT: FTHandle): Handle;
  316. FUNCTION FTGetFTVersion: INTEGER;
  317. FUNCTION FTNew(procID: INTEGER; flags: FTFlags; sendProc: FileTransferSendUPP; recvProc: FileTransferReceiveUPP; readProc: FileTransferReadUPP; writeProc: FileTransferWriteUPP; environsProc: FileTransferEnvironsUPP; owner: WindowPtr; refCon: LONGINT; userData: LONGINT): FTHandle;
  318. PROCEDURE FTDispose(hFT: FTHandle);
  319. FUNCTION FTStart(hFT: FTHandle; direction: FTDirection; {CONST}VAR fileInfo: SFReply): FTErr;
  320. FUNCTION FTAbort(hFT: FTHandle): FTErr;
  321. FUNCTION FTSend(hFT: FTHandle; numFiles: INTEGER; pFSSpec: FSSpecArrayPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  322. FUNCTION FTReceive(hFT: FTHandle; pFSSpec: FSSpecPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  323. PROCEDURE FTExec(hFT: FTHandle);
  324. PROCEDURE FTActivate(hFT: FTHandle; activate: BOOLEAN);
  325. PROCEDURE FTResume(hFT: FTHandle; resume: BOOLEAN);
  326. FUNCTION FTMenu(hFT: FTHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  327. FUNCTION FTChoose(VAR hFT: FTHandle; where: Point; idleProc: FileTransferChooseIdleUPP): INTEGER;
  328. PROCEDURE FTEvent(hFT: FTHandle; {CONST}VAR theEvent: EventRecord);
  329. FUNCTION FTValidate(hFT: FTHandle): BOOLEAN;
  330. PROCEDURE FTDefault(VAR theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  331. FUNCTION FTSetupPreflight(procID: INTEGER; VAR magicCookie: LONGINT): Handle;
  332. PROCEDURE FTSetupSetup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR magicCookie: LONGINT);
  333. FUNCTION FTSetupFilter(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theEvent: EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  334. PROCEDURE FTSetupItem(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  335. PROCEDURE FTSetupXCleanup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  336. PROCEDURE FTSetupPostflight(procID: INTEGER);
  337. FUNCTION FTGetConfig(hFT: FTHandle): Ptr;
  338. FUNCTION FTSetConfig(hFT: FTHandle; thePtr: UNIV Ptr): INTEGER;
  339. FUNCTION FTIntlToEnglish(hFT: FTHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): FTErr;
  340. {  (16) chenged OSErr to FTErr }
  341. FUNCTION FTEnglishToIntl(hFT: FTHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): FTErr;
  342. {  (16) chenged OSErr to FTErr }
  343. PROCEDURE FTGetToolName(procID: INTEGER; VAR name: Str255);
  344. FUNCTION FTGetProcID(name: Str255): INTEGER;
  345. PROCEDURE FTSetRefCon(hFT: FTHandle; refCon: LONGINT);
  346. FUNCTION FTGetRefCon(hFT: FTHandle): LONGINT;
  347. PROCEDURE FTSetUserData(hFT: FTHandle; userData: LONGINT);
  348. FUNCTION FTGetUserData(hFT: FTHandle): LONGINT;
  349. PROCEDURE FTGetErrorString(hFT: FTHandle; id: INTEGER; VAR errMsg: Str255);
  350. {
  351.     These Async routines were added to InterfaceLib in System 7.5
  352. }
  353. FUNCTION FTSendAsync(hFT: FTHandle; numFiles: INTEGER; pFSSpec: FSSpecArrayPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  354. FUNCTION FTReceiveAsync(hFT: FTHandle; pFSSpec: FSSpecPtr; notifyProc: FileTransferNotificationUPP): FTErr;
  355. FUNCTION FTCompletionAsync(hFT: FTHandle; completionCall: FTCompletionKind): FTErr;
  356.  
  357. {$ALIGN RESET}
  358. {$POP}
  359.  
  360. {$SETC UsingIncludes := FileTransfersIncludes}
  361.  
  362. {$ENDC} {__FILETRANSFERS__}
  363.  
  364. {$IFC NOT UsingIncludes}
  365.  END.
  366. {$ENDC}
  367.